﻿using DesignModeConsole.行为型.中介者模式.基础;

namespace DesignModeConsole.行为型.中介者模式;

/// <summary>
/// 中介者模式示例
/// </summary>
public class MediatorService : IService
{
    public void Main()
    {
        Sample();
    }

    /// <summary>
    /// 基础使用
    /// </summary>
    private void Sample()
    {
        // 创建一个中介者对象
        var mediator = new ConcreteMediator();

        // 创建两个同事类 并且将他们分别分配中介者对象
        var a = new ColleagueA(mediator);
        var b = new ColleagueB(mediator);

        // 将需要通过中介者交互的类放入中介者
        mediator.SetColleague(a, b);

        // 对象的同事类去发送消息
        a.Publish("你好");
        b.Publish("我很好，谢谢");
    }
}